package com.zjsru.plan2024.oneday;

/**
 * 2960. 统计已测试设备
 * @Author: cookLee
 * @Date: 2024-05-10
 */
public class CountTestedDevices {

    /**
     * 主
     * \
     * 如果 batteryPercentages[i] 大于 0：
     * 增加 已测试设备的计数。
     * 将下标在 [i + 1, n - 1] 的所有设备的电池百分比减少 1，确保它们的电池百分比 不会低于 0 ，即 batteryPercentages[j] = max(0, batteryPercentages[j] - 1)。
     * 移动到下一个设备。
     * 否则，移动到下一个设备而不执行任何测试。
     * \
     * 输入：batteryPercentages = [1,1,2,1,3]
     * 输出：3
     * 解释：按顺序从设备 0 开始执行测试操作：
     * 在设备 0 上，batteryPercentages[0] > 0 ，现在有 1 个已测试设备，batteryPercentages 变为 [1,0,1,0,2] 。
     * 在设备 1 上，batteryPercentages[1] == 0 ，移动到下一个设备而不进行测试。
     * 在设备 2 上，batteryPercentages[2] > 0 ，现在有 2 个已测试设备，batteryPercentages 变为 [1,0,1,0,1] 。
     * 在设备 3 上，batteryPercentages[3] == 0 ，移动到下一个设备而不进行测试。
     * 在设备 4 上，batteryPercentages[4] > 0 ，现在有 3 个已测试设备，batteryPercentages 保持不变。
     * 因此，答案是 3
     * \
     * 输入：batteryPercentages = [0,1,2]
     * 输出：2
     * 解释：按顺序从设备 0 开始执行测试操作：
     * 在设备 0 上，batteryPercentages[0] == 0 ，移动到下一个设备而不进行测试。
     * 在设备 1 上，batteryPercentages[1] > 0 ，现在有 1 个已测试设备，batteryPercentages 变为 [0,1,1] 。
     * 在设备 2 上，batteryPercentages[2] > 0 ，现在有 2 个已测试设备，batteryPercentages 保持不变。
     * 因此，答案是 2 。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        CountTestedDevices countTestedDevices = new CountTestedDevices();
        int[] batteryPercentages = new int[]{1,1,2,1,3};
        System.out.println(countTestedDevices.countTestedDevices(batteryPercentages));
    }

    /**
     * 计数测试设备
     *
     * @param batteryPercentages 电池百分比
     * @return int
     */
    public int countTestedDevices(int[] batteryPercentages) {
        int ans = 0;
        for (int i = 0; i < batteryPercentages.length; i++) {
            if (batteryPercentages[i] > 0) {
                ans++;
                for (int j = i + 1; j < batteryPercentages.length; j++) {
                    batteryPercentages[j] = Math.max(0, batteryPercentages[j] - 1);
                }
            }
        }
        return ans;
    }

}
